<HTML>

<HEAD>
<TITLE>Nouvel administrateur général</TITLE>
<META http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script type="text/javascript"> 
  function valider() 
  { 
    if (confirm('Êtes vous sûr des données que vous avez entré ? \n \n La demarche est définitive et ne peut être inversée.')) 
    { 
      document.getElementById('form-admin').submit(); 
    } 
  } 
</script>
</HEAD>

<BODY>

<div
	style="text-align: center; width: 800px; border: 1px solid grey; margin: auto;">
<H1>Nouvel administrateur général</H1>

<p>Attention : vous vous apprêtez à effectuer une opération sensible sur
le système CodeBar.<br />
Toute modification est directement inscrite dans la base de données.<br />
En cas d'erreur, il se peut que revenir en arrière soit très compliqué
et très technique.</p>
<p>Il vous faut rentrer le mot de passe de la base de données, le login du nouvel administrateur général<br>
(l'utilisateur doit déjà être présent dans le système), et choisir un mot de passe.<br/>
Si l'utilisateur avait déjà un mot de passe, il faut le re-rentrer.
</p>
</div>

<BR>
<BR>

<div style="margin-left: 30px;">
<FORM NAME="admin" METHOD=POST ACTION="" ID="form-admin"><INPUT
	TYPE="HIDDEN" NAME="ref" VALUE="admin">
<H3>Password de la base de donnée :</H3>
<INPUT TYPE="PASSWORD" NAME="pwdDB" VALUE="" SIZE=50> <BR>
<H3>Login du nouvel administrateur :</H3>
<INPUT CLASS="DEFAULT" TYPE="TEXT" NAME="login" VALUE="" SIZE=50> <BR>
<H3>Mot de passe du nouvel administrateur (longueur &ge; 8) :</H3>
<INPUT CLASS="DEFAULT" TYPE="PASSWORD" NAME="pwd" VALUE="" SIZE=50> <BR>
<H3>Vérification du mot de passe :</H3>
<INPUT CLASS="DEFAULT" TYPE="PASSWORD" NAME="pwd_verif" VALUE="" SIZE=50>
<BR>
<BR>
<BR>
<BUTTON CLASS="DEFAULT" ONCLICK="valider()" TYPE="BUTTON">Attribuer le
rôle</BUTTON>
</FORM>
</div>

<?php

if($_POST[ref] == "admin") {
	$output = NULL;
	$login = $_POST[login];
	$login = pg_escape_string($login);

	//Has a login been entered ?
	if($login != '') {
		//Are the two provided passwords identical and of length >= 8?
		if ($_POST[pwd] == $_POST[pwd_verif] && strlen($_POST[pwd]) > 7) {

			//adapt according to your database
			$db = pg_connect("host=localhost port=5432 dbname=codebar3 user=baradmin password=".$_POST[pwdDB]) or die('Connection DB CB3 failed');

			//Is the provided login in the database?
			$sql = "SELECT * FROM cb_users WHERE login = '".$login."';";
			$user_query = pg_query($db, $sql);
			$array_querry = pg_fetch_all($user_query);
			
			if (count($array_querry) == 0) {
				$output = "Aucun utilisateur n'a ce login.";
			} else if (count($array_querry) == 1) {
				$output = "Utilisateur trouvé.<br>";
				
				//Update the password
				$update_pwd_sql = "UPDATE cb_users SET mdp = '".md5($_POST[pwd])."' WHERE login = '".$login."';";
				pg_query($db, $update_pwd_sql);
				
				//Get the groups
				$sql_groups = "SELECT * FROM cb_groupes;";
				$groups = pg_fetch_all(pg_query($db, $sql_groups));
				
				//Loop on groups to add the role to the user
				foreach ($groups as $group) {
					$buffer_sql = NULL;
					$buffer_sql = $buffer_sql."INSERT INTO cb_roles_users(id_role,login,id_groupe) VALUES('2','".$login."','".$group['id_groupe']."');";
					$buffer_sql = $buffer_sql."INSERT INTO cb_historique_system(libelle,login,id_groupe) VALUES('Inscription de l''user ".$login.
						" dans le groupe n°".$group['id_groupe']." avec le rôle AdminGroup','baradmin','1');";
					pg_query($db, $buffer_sql);
				}
				pg_query($db,"INSERT INTO cb_historique_system(libelle,login,id_groupe) VALUES('L''utilisateur ".$login.
					" est maintenant administrateur général du système !','baradmin','1');");
				$output = $output."L'utilisateur ".$login." est maintenant administrateur général du système !";
			} else {
				$output = "Erreur dans la requète sql ".$sql;
			}
			
		} else {
			$output = "Les deux passwords ne sont pas identiques ou ils ont taille inférieure à 8 caractères.";
		}
	} else {
		$output =  "Aucun login n'a été entré.";
	}

	echo $output;
}

?>

</BODY>
</HTML>
